home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Extra 1996 #2 / Amiga Plus CD - 1996 - No. 2 Extra.iso / clarissa1_1-demo / macros / fade.clssa < prev    next >
Text File  |  1995-01-26  |  3KB  |  113 lines

  1. /***********************************************************************
  2.   GADGET: "Fade" "6" AUTO TYP: "?"
  3.  
  4.   $DAT >>Fade.clssa<<         26.10.1992 - (C) ProDAD Holger Burkarth
  5.                               20.01.1995 - (C) ProDAD Michael Christoph
  6.  
  7.  Der Fade-Macro erzeugt einen Blendeffekt in eine definierbare Farbe.
  8.  Oft wird ein Fade nur in Verbindung mit der Farbe Schwarz benötigz.
  9.  Hierzu stellt der Macro eine Abkürzung zur Verfügung.
  10.  Möchte man aber eine Bezugsfarbe verwendet, so muß der User die Farbe
  11.  auswählen. Eine gezielte Auswahl der Farbnummer kann im Farbrequester
  12.  vorgenommen werden.
  13. ************************************************************************/
  14.  
  15. Options Results
  16. Address clariSSA
  17.  
  18.   FailAt 10
  19.   AltFail=RESULT
  20.  
  21.   GetArea
  22.   PARSE VAR RESULT . "FROM" von "TO" bis .
  23.   von=Strip(von)
  24.  
  25.   Anzahl=bis-von
  26.   IF Anzahl>1 THEN DO
  27.  
  28.     DO FOREVER
  29.       GetAnimInfo
  30.       PARSE VAR RESULT . "FORMAT" x y t "VIEWMODE" ViewMode .
  31.       AnzFarben=2**t - 1
  32.  
  33.       MSRequester "TITLE '*** Fade ***'",
  34.                         "''",
  35.                         "'Wählen Sie bitte die Faderichtung aus.'",
  36.                         "'IN bedeutet, daß sich die Farben mit'",
  37.                         "'laufender Animation normalisieren.'",
  38.                   "PTEXT 'Fade IN'",
  39.                         "'Fade OUT'"
  40.       IF RC~=0 THEN LEAVE
  41.       FadeIN=RESULT
  42.  
  43.       MSRequester "TITLE '*** Fade ***'",
  44.                         "''",
  45.                         "'Bezugsfarbe zur Fadebearbeitung wählen?'",
  46.                   "PTEXT 'Bezugsfarbe frei wählen'",
  47.                         "'Bezugsfarbe schwarz'",
  48.                         "'Bezugsfarbe weiß'"
  49.       IF RC~=0 THEN LEAVE
  50.  
  51.       IF RESULT=1 THEN DO
  52.         COLRequest "Register 0 TITLE '*** Fade ***''''Bezugsfarbe für den Fadeeffekt''festlegen.'"
  53.         IF RC~=0 THEN LEAVE
  54.         BezFarbe=RESULT
  55.         GetColor BezFarbe
  56.         PARSE VAR RESULT x BezR BezG BezB
  57.       END
  58.       ELSE IF RESULT=2 THEN DO
  59.         BezR=0
  60.         BezG=0
  61.         BezB=0
  62.       END
  63.       ELSE IF RESULT=3 THEN DO
  64.         BezR=255
  65.         BezG=255
  66.         BezB=255
  67.       END
  68.  
  69.  
  70.       l=0
  71.       ListeG=""
  72.       DO UNTIL l>AnzFarben
  73.         ListeG=ListeG l
  74.         l=l+1
  75.       END
  76.  
  77.       BOOLRequest "'Animationsfarben ändern?''Anim: Master''<< von "von" bis "bis" >>'"
  78.       IF RC~=0 | RESULT="NO" THEN LEAVE
  79.  
  80.       RequestStatus OFF
  81.       DO UNTIL von>bis
  82.         IF FadeIN=2 THEN fa=(1-(bis-von)/Anzahl)
  83.         ELSE             fa=(bis-von)/Anzahl
  84.  
  85.         ViewFrame COPS von
  86.         IF RC~=0 THEN LEAVE
  87.         l=0
  88.         Liste=""
  89.         GetColor ListeG
  90.         ListeR=RESULT
  91.         DO UNTIL ListeR=""
  92.           PARSE VAR ListeR x r g b ListeR
  93.           r=r+(BezR-r)*fa
  94.           g=g+(BezG-g)*fa
  95.           b=b+(BezB-b)*fa
  96.           Liste=Liste x TRUNC(r) TRUNC(g) TRUNC(b)
  97.           l=l+1
  98.         END
  99.         SetColor Liste
  100.         Record COPS
  101.         IF RC~=0 THEN LEAVE
  102.         von=von+1
  103.       END
  104.       RequestStatus ON
  105.  
  106.       LEAVE
  107.     END
  108.   END
  109.   ELSE Message "'Für einen Fade-Effekt müssen''min. 2 Frames ausgewählt werden.'"
  110.  
  111.   FailAt AltFail
  112. exit
  113.